#ifndef DATABASE_H
#define DATABASE_H

#include "Debug.h"
#include <iostream>
#include <mysql/mysql.h>

using namespace std;

/*
// 实例
	char* host = "127.0.0.1";
	char* user = "root";
	char* pwd = "123123";
	char* db = "tkdb";

	Database myDb;
	myDb.Init(host, user, pwd, db);
	char* sql = "SELECT * FROM tUser;";
	myDb.Query(sql);
	// 打印获取数据行数
	cout<< "u got "<< myDb.m_row<< "records."<< endl;
	myDb.Dispose();
*/



class Database
{
	public:
		Database();
		~Database();

		// 初始化
		int Init(string host, string user, string pwd, string db);

		// 释放
		void Dispose();

		// 表 查询
		int Query(string sql);

		// 表 添加
		int Insert(string sql);

		// 表 删除
		int Drop(string sql);

		// 表 更新
		int Update(string sql);

		MYSQL_RES* mp_Result; 		 		// 上次执行查询的结果
		int m_row;
		int m_cols;

	protected:
	private:
		// 链接
		int Connect();

		// 执行sql语句
		int RunSql(string sql);

		char* mp_host; 						// 数据库所在主机IP地址
		char* mp_user;  					// 账户
		char* mp_pwd; 						// 密码
		char* mp_db; 						// 数据库名称

		MYSQL m_Mysql; 						// mysql 对象

		bool m_isInit; 						// 是否初始化
		bool m_isConnect;					// 是否链接
};

#endif // DATABASE_H


